import { defineStore } from 'pinia'
import type { IUserInfo } from './user'
import type { UserInfoState } from './userInfoState'
import { getStorage, saveStorage } from '@/utils/storage'
import { reqLogin, reqUserInfo } from '@/api/user'


// 获取用户信息
export const useUserInfoStore = defineStore('userInfo',{
    state: (): UserInfoState => ({
      token: getStorage() as string,
      userInfo: {} as IUserInfo
    }),
    actions:{
      // 登录
    async login(phone: string, password: string) {
      // 调用登录接口 API
      const res = await reqLogin(phone, password)

      // 登录成功以后
      if (res.code === 200) {
        // 将 token 持久化的存储到本地
        saveStorage(res.data.token)

        // 将 token 存放到 state 中
        this.token = res.data.token

        // 如果请求成功，直接抛出成功的结果
        Promise.resolve(true)
      } else {
        // 如果请求错误，直接抛出错误的结果
        
        Promise.reject(false)
      }
    },
   async getUserInfo () {
      // 调用接口获取用户信息
      const res = await reqUserInfo()
      if(res.code === 200 ){
        userInfo = res.data
      }
    }
    }
  }
)